#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project : gtmsAutoTestProject 
@File    : fakerDataControl.py
@IDE     : PyCharm 
@Author  : Mario
@Date    : 2022/4/20 18:15 
@Describe:
"""

from faker import Faker
from Comm.logUtils.logControl import LogHandler


class fakerDataHandler:
    def __init__(self, Language='zh_CN'):
        """
        构造函数
        :param Language: 语言，默认中文
        简体中文：zh_CN
        繁体中文：zh_TW
        美国英文：en_US
        英国英文：en_GB
        韩文：ko_KR
        日文：ja_JP
        """
        self.faker = Faker(locale=Language)  # 实例化
        self.logger = LogHandler().get_logger()  # 实例化

    def get_random_name(self):
        """
        随机姓名
        :return: 随机姓名
        """
        random_name = self.faker.name()
        self.logger.debug("生成随机姓名成功:{}".format(random_name))
        return random_name

    def get_random_ssn(self):
        """
        随机身份证号码
        :return: 随机身份证号码
        """
        random_ssn = self.faker.ssn()
        self.logger.debug("生成随机身份证号码成功:{}".format(random_ssn))
        return random_ssn

    def get_random_phoneNumber(self):
        """
        随机手机号码
        :return:  随机手机号码
        """
        random_phoneNumber = self.faker.phone_number()
        self.logger.debug("生成随机手机号码成功:{}".format(random_phoneNumber))
        return random_phoneNumber

    def get_random_address(self):
        """
        随机详细地址
        :return: 随机详细地址
        """
        random_address = self.faker.address()
        self.logger.debug("生成随机详细地址成功:{}".format(random_address))
        return random_address

    def get_random_latitude(self):
        """
        随机地理坐标(纬度)
        :return: 随机地理坐标(纬度)
        """
        random_latitude = self.faker.latitude()
        self.logger.debug("生成随机地理坐标(纬度)成功：{}".format(random_latitude))
        return random_latitude

    def get_random_longitude(self):
        """
        随机地理坐标(经度)
        :return: 随机地理坐标(经度)
        """
        random_longitude = self.faker.longitude()
        self.logger.debug("生成随机地理坐标(经度)成功：{}".format(random_longitude))
        return random_longitude

    def get_random_mac_address(self):
        """
        随机MAC地址
        :return:
        """
        random_address = self.faker.mac_address()
        self.logger.debug("生成随机MAC地址成功：{}".format(random_address))
        return random_address

    def get_random_sentence(self):
        """
        随机单个句子
        :return:
        """
        random_sentence = self.faker.sentence()
        self.logger.debug("生成随机单个句子成功：{}".format(random_sentence))
        return random_sentence

    def get_random_text(self):
        """
        随机文章
        :return:
        """
        random_text = self.faker.text()
        self.logger.debug("生成随机文章成功：{}".format(random_text))
        return random_text

    def get_random_md5(self):
        """
        随机MD5
        :return:
        """
        random_md5 = self.faker.md5()
        self.logger.debug("生成随机MD5成功：{}".format(random_md5))
        return random_md5

    def get_random_password(self):
        """
        随机密码
        :return:
        """
        random_password = self.faker.password()
        self.logger.debug("生成随机密码成功：{}".format(random_password))
        return random_password

    def get_random_uuid(self):
        """
        随机UUID
        :return:
        """
        random_uuid = self.faker.uuid4()
        self.logger.debug("生成随机UUID成功：{}".format(random_uuid))
        return random_uuid

    def get_random_user_agent(self):
        """
        随机user_agent
        :return:
        """
        random_user_agent = self.faker.chrome()
        self.logger.debug("生成随机user_agent成功：{}".format(random_user_agent))
        return random_user_agent

    def get_random_ipv4(self):
        """
        随机ipv4
        :return:
        """
        random_ipv4 = self.faker.ipv4()
        self.logger.debug("生成随机ipv4成功：{}".format(random_ipv4))
        return random_ipv4


if __name__ == '__main__':
    CASH_CODE = "Auto_Generate"
    test = fakerDataHandler()
    password = test.get_random_md5()
    new_name = CASH_CODE+'_'+password
    print(new_name[0:20])
    new_ = "Auto_Generate_L+0gAZ"
    print(len(new_))
